ALB 配下に Tableau Server をインストールする
Application Load Balancer(ALB) 配下の EC2 に Tableau Server をインストールするまでの手順です。
こちらについては、過去にも同様の記事があるのであわせてご参照ください。
Tableau ServerとTSMにALB経由でアクセスしてみた #tableau
Tableau ServerをWindows Serverに構築してSSL化してみた #tableau
前提条件
以下の環境を使用しています。
- Tableau Server 2023.1.5
- 単一サーバー構成
- Tableau Serverをインストールするサーバー(EC2)をローンチするためのVPC、サブネットは構築済み
- Route53 にて検証用に
yy16test.xyz
のDNS ホストゾーンを作成済み- Tableau Server にはサブドメイン(
tabsrv.yy16test.xyz
)で接続します
- Tableau Server にはサブドメイン(
- ACMで証明書を取得済み
- SSL オフロードにより HTTPS 要求は ALB で終了し、HTTP 経由で Tableau Server と通信を行います
ここでは以下の構成を目指します。
要件
インスタンス等の設定は以下としました。
ここでは検証のため、以下のインスタンスを使用しますが、このメモリサイズ(64GB)は最小要件となる点にご注意ください。
参考:インストールの最小ハードウェア要件 | Tableau Help
項目 | 設定 |
---|---|
OS | Windows Server 2019 |
インスタンスタイプ | m5.4xlarge |
vCPU | 16 |
メモリ | 64 GB |
ルートボリューム | 汎用SSD(gp2)50 GB |
追加ボリューム(Ddrive) | 汎用SSD(gp2)100 GB |
本番環境における、各種要件、推奨事項は以下に記載があります。
推奨されるベースライン構成 | Tableau Help
オペレーティング システム要件 | Tableau Help
Tableau Server の要件 | Tableau
セキュリティグループ
セキュリティグループとして以下を用意します。
8850 は TSM(Tableau Services Manager)用のポートになります。必要に応じて、こちらは管理者のみが使用するソースを指定します。
また、ALB で SSL オフロードにより HTTPS 要求は ALB で終了し、HTTP 経由で Tableau Server と通信を行う設定です。
- ALB
タイプ | ポート範囲 | ソース |
---|---|---|
HTTPS | 443 | 接続元のIPアドレス |
カスタム TCP | 8850 | 接続元のIPアドレス |
- Tableau Server
タイプ | ポート範囲 | ソース |
---|---|---|
HTTP | 80 | ALB セキュリティグループ |
カスタム TCP | 8850 | ALB セキュリティグループ |
ALB
ターゲットグループの作成
インスタンスをターゲットに2種類のターゲットグループを作成します。
- Tableau Server 用
- 以下の設定とし、その他はデフォルトとしています
- プロトコル:HTTP
- ポート:80
- ヘルスチェックパス:
/
- 以下の設定とし、その他はデフォルトとしています
- TSM 用
- 以下の設定とし、こちらもその他はデフォルトとしています
- プロトコル:HTTPS
- ポート:8850
- ヘルスチェックパス:
/login
- 以下の設定とし、こちらもその他はデフォルトとしています
ALBの作成
サブネットには、パブリックサブネットを指定し、ALB 用のセキュリティグループを関連付けます。
リスナー
Tableau Server 、TSM 用に2つのリスナーを用意します。[セキュアリスナの設定]で ACM の証明書を指定します。
- Tableau Server 用のリスナー
- ターゲットには Tableau Server 用のターゲットグループを指定します。
- TSM 用のリスナー
NAT Gateway
プライベートサブネットに EC2 を構築するので、インターネットゲートウェイにルーティングがあるパブリックサブネットに配置し、 EIP を指定し作成しておきます。
Route53 の設定
以下の設定を行います。
- Zone Apex に対してエイリアスレコードで ALB の DNS 名を登録
- サブドメインを CNAME レコードとして設定
- ALB 配下に Tableau Server をインストールする場合、後述する「リバース プロキシ サーバーを使用するための Tableau Server の構成」が必要となります。その際、ALB の IP アドレスか Tableau Server への接続に使用する CNAME DNS 値のいずれかを指定する必要があるので、ここではサブドメインを CNAME レコードとして設定しています
Taleau Server のインストール
Windows Server への RDP 接続
サーバーにログインし、インストーラーを実行します。
プライベートサブネットに構築した Windows Server への RDP 接続には AWS Systems Manager を使用しました。接続にあたり、事前に以下の設定を行います。
- EC2 インスタンスへの IAMロールの紐づけ
- VPC エンドポイントの作成
- エンドポイントに付与するセキュリティグループは、プライベートサブネット CIDR からのHTTPSを許可
こちらの具体的な設定の詳細は以下の記事をご参照ください。
プライベートサブネットにあるEC2インスタンスを Systems Manager で管理する | DevelopersIO
[アップデート] WindowsインスタンスにAWS Systems Manager Fleet ManagerからRDP接続できるようになりました | DevelopersIO
インストーラーの実行
Tableau Server のインストールファイルは こちら よりダウンロードできます。
ここでは、以下にインストールすることとします。
D:\Tableau\Tableau Server
Tableau Server において、既定のインストールパスはC:\Program Files\Tableau\Tableau Server\
なので、インストール先を変更する場合、後述する実行サービスアカウントに対するパーッション設定をいくつか手動で設定する必要があります。
フォルダー パーミッションの検証 | Tableau Help
インストーラーを起動すると以下のポップアップが表示されます。ここでは単一サーバー構成なので「Tableau Server の新しいインストールを作成する」を選択します。
次に、実行承認(ATR)サービスを使用するかどうかを選択します。
サブスクリプションライセンスで ATR を使用する場合 Tableau Server 側でユーザーがプロダクトキーを更新する必要がなくなります。(サブスクリプションの更新やライセンス発行の変更時に、新しいプロダクト キーをアクティブ化しなくてよい)
ここでは「製品をアクティブにするために ATR を使用」にチェックを入れ、[インストール] を押下します。
実行承認 (ATR) サービスを使用して Tableau Server をライセンス認証する | Tableau Help
インストールが完了すると TSM がブラウザで起動するのでプロダクトキーを入力、もしくはトライアルを選択してアクティベーションします。
画面に沿って登録情報を入力します。
環境設定を行います。
ここでは、アイデンティティストアとして「ローカル認証」を指定します。
アイデンティティストアの設定は後から変更ができない点にご注意ください。
セットアップ完了後、Tableau Server の管理者を設定します。
セットアップ完了後は、ブラウザから Tableau Server にアクセスできることを確認します。
- Tableau Server
- TSM
- TSM には URL 末尾に
:8850
を付けてアクセスできます。
- TSM には URL 末尾に
リバース プロキシ サーバーを使用するための Tableau Server の構成
ここでは ALB 配下の EC2 に Tableau Server をインストールしたので、Tableau Server 側でtsm configuration set
コマンドで設定できる以下の設定オプションを変更します。
設定 | 概要 |
---|---|
gateway.trusted | リバースプロキシ サーバーの IP アドレスまたは CNAME を設定します。 静的 IP アドレスを提供できない場合や、クラウドプロキシ または外部ロードバランサーを使用している場合は、クライアントが Tableau Server への接続に使用する CNAME DNS 値を指定します。(※) |
gateway.public.host | Tableau Server へのアクセスに使用される FQDN を指定します。 |
gateway.trusted_hosts | リバースプロキシ サーバーのサブドメイン名や別名を指定します。 名前が複数ある場合は、名前をコンマで区切ります。 |
gateway.public.port | クライアントからリバースプロキシ サーバーへのトラフィックのポート番号を指定します。 リバースプロキシ サーバーがインターネットとの通信に SSL を使用している場合などに、ポート 80 の代わりに 443 を使っていることを Tableau Server 側に伝える設定です。 |
リバース プロキシ サーバーを使用するための Tableau Server の構成 | Tableau Help
※ロードバランサーの IP アドレスは静的でないため、ロードバランサー配下に Tableau Server をインストールし、gateway.trusted
設定で IP アドレスを指定する場合、以下に記載があるように CIDR 範囲ができる限り小さいサブネットを作成し、ロード バランサーが持つ IP アドレスが一定の値に限定されるようにすることが推奨されています。(現時点の Tableau Server では範囲指定できないため)
Tableau Server クラスタで使用するロード バランサーを作成する | Tableau Help
ここでは上記の内容をもとに、以下の通り設定変更を行いました。
- gateway.trusted
tsm configuration set -k gateway.trusted -v "yy16test.xyz"
- gateway.public.host
tsm configuration set -k gateway.public.host -v "tabsrv.yy16test.xyz"
- gateway.trusted_hosts
tsm configuration set -k gateway.trusted_hosts -v "tabsrv.yy16test.xyz, tabsrv"
- gateway.public.port
tsm configuration set -k gateway.public.port -v 443
tsm configuration set
を実行後、以下のコマンドで変更を適用します。
tsm pending-changes apply
リバース プロキシのセットアップ検証
リバース プロキシのセットアップ後は、以下に検証に関する記載があるので実施しておきます。
ここでは項目の内「Tableau Desktop から Tableau Server にサインイン」「tabcmd (非サーバー クライアントから) が正常に動作しているかを確認する」について記載します。
※図は リバース プロキシのセットアップ検証 | Tableau Help より引用
Tableau Desktop から Tableau Server にサインイン
Tableau Server へのサインインの前に、Tableau Desktop のライセンス認証を行います。
ここでは、ログインベースのライセンス管理を使用します。
Tableau Desktop を起動し [サーバーにサインインしてライセンスを認証する]を選択します。
サインインのポップアップが表示されるので、Tableau Server の URL を入力します。
Tableau Server へのログイン画面が表示されるので、Creator サイトロールを持つユーザーでサインインします。
問題なく認証されれば、以下の表示となり、Tableau Server にサインイン済みとなり、Tableau Desktop も利用できるようになります。
ライセンス認証後、他の検証項目である以下の操作が実行できることを確認します。
- ワークブックのパブリッシュ
- データソースのパブリッシュ
- Tableau Server からワークブックを開く
- Tableau Desktop で Server からログアウトする
- Web ブラウザーからワークブックをダウンロードする
tabcmd (非サーバー クライアントから) が正常に動作しているかを確認する
Tableau Server に接続可能な端末に tabcmd をインストールしログインを試みます。
※tabcmd はこちらよりインストール可能です。
ログインにはtabcmd login
を使用します。
>tabcmd login -s https://tabsrv.yy16test.xyz -u <ユーザー名> -p <パスワード> ===== 新しいセッションを作成しています ===== Server: https://tabsrv.yy16test.xyz ===== Username: admin ===== サーバーに接続しています... ===== サインインしています... ===== 正常に終了しました
ログイン後の動作確認として、tabcmd 経由でプロジェクトを作成してみます。
>tabcmd createproject -n tabcmdから作成 -d tabcmdのテスト ===== 前のセッションを続行しています ===== Server: https://tabsrv.yy16test.xyz ===== Username: admin ===== プロジェクト 'tabcmdから作成' をサーバー上で作成しています... ===== 正常に終了しました
Server 上で作成できていることを確認します。
さいごに
ALB 配下の EC2 インスタンスに Tableau Server をインストールしました。
以下のナレッジベースの記事や信頼できる認証において、チケットを要求するコンピューターと Tableau Server 間に 1 台以上のプロキシ サーバーが存在する場合に、リバース プロキシ サーバーを使用するための構成が実施できていないことで問題が発生する可能性があるため注意が必要です。
Share Link URL Shows Internal Server Name and Wrong Protocol on Tableau Server
Tableau Server への信頼できる IP アドレスまたはホスト名の追加
こちらの内容が何かの参考になれば幸いです。